Node Coarsening Calculi for Program Slicing
نویسندگان
چکیده
Several approaches to reverse and re-engineering are based upon program slicing. Unfortunately, for large systems, such as those which typically form the subject of reverse engineering activities, the space and time requirements of slicing can be a barrier to successful application. Faced with this problem, several authors have found it helpful to merge Control Flow Graph (CFG) nodes, thereby improving the space and time requirements of standard slicing algorithms. The node-merging process essentially creates a ‘coarser’ version of the original CFG. This paper introduces a theory for defining Control Flow Graph node coarsening calculi. The theory formalizes properties of interest, when coarsening is used as a precursor to program slicing. The theory is illustrated with a case study of a coarsening calculus, which is proved to have the desired properties of sharpness and consistency.
منابع مشابه
Program Slicing using Functional Networks
Program slicing is a technique for identifying a subprogram from an original program. The subprogram, called a slice, is an executable program which maintains the eeect of the original upon a chosen set of variables at some point within the Control Flow Graph (CFG) of the original. The variable set, CFG node pair is called the slicing criterion. Slices nd applications in debugging, testing, par...
متن کاملUsing Program Slicing Technique to Reduce the Cost of Software Testing
Systems of computers and their application in the lives of modern human beings are vastly expanding. In any kind of computer application, failure in computer systems can lead to a range of financial and mortal losses. Indeed, the major origin of software failure can be located in designing or implementing software. With regard to these statistics, 30% of the software projects have been prospero...
متن کاملDynamic Slicing of Aspect-Oriented Programs
Program slicing is a decomposition technique which has many applications in various software engineering activities such as program debugging, testing, maintenance etc. Aspect-oriented programming (AOP) is a new programming paradigm that enables modular implementation of cross-cutting concerns such as exception handling, security, synchronization, logging etc. The unique features of AOP such as...
متن کاملAn alternative characterization of weak order dependence
Control dependence forms the basis for many program analyses, such as program slicing. Recent work on control dependence analysis has led to new definitions of dependence that can cater for reactive programs with their necessarily non–terminating computations. One important such definition is the definition of Weak Order Dependence, which was introduced to generalize classical control dependenc...
متن کاملSlicing for modern program structures: a theory for eliminating irrelevant loops
Slicing is a program transformation technique with numerous applications, as it allows the user to focus on the parts of a program that are relevant for a given purpose. Ideally, the slice program should have the same termination properties as the original program, but to keep the slices manageable, it might be preferable to slice away loops that do not affect the values of relevant variables. ...
متن کامل